由于对网段,网桥概念的不清晰,学习并查阅了一些资料,记录如下:
- 物理层,链路层,网络层的简单介绍及递进关系
- 上述三个层中涉及到的设备和协议的简单介绍
HUB&Repeater,Bridge&Switch
先列举几个问题:
- 网桥是什么?
- vmware桥接模式的原理是什么?
- 网段是什么?
- 物理网段和逻辑网段的区别?
- 网关的原理和作用
- DNS的原理和作用
网桥是什么
focus on 网桥,查询过程引出了几个概念:
- 中继器(repeater)
- 集线器(HUB)
- 冲突域
- 广播域
最原始的网络,是物理链路层互联,对应OSI的第一层。物理链路层就是物理设备的互联组成的层,主要用来解决:不同介质间信号转换,比如光信号怎么转换为电信号的啊;0和1是怎么在电信号和光信号中表达的啊,等等问题。
具体OSI分层参见附录:OSI分层
在物理层之上就是数据链路层。可以看做是对物理链路层提供的能力(0,1的信号)的封装。比如以太网帧
就规定了 (6 + 6 + 2 + 46~1500 + 4)* 8 bit 这么多的 0 和 1 加起来是一个以太网帧。在数据链路层上的协议就提供了帧格式规定,帧同步,收发顺序的控制。
数据链路层上的数据传输(帧发送)有以下特点:
- 空闲时才可发送
- 帧冲突,则采用指数退让规则,尝试重发
存在这种冲突的主机所在的scope,就是冲突域。而 HUB & repeater 是为了解决物理网络信号衰减,制造的设备,能实现:
- 扩展网络距离,将衰减信号经过再生。
- 实现粗同轴电缆以太网和细同轴电缆以太网的互连。
中继器只有两个口,而集线器其实是一个多口的中继器。因为集线器多口其实是连接在一个总线上。
由 HUB & repeater 连接的主机,都在同一个冲突域中。冲突域的危害还是比较大的,假如一个冲突域中设备很多,或者说发送帧的设备很多,那么帧冲突的情况就很常见,这时数据链路层的效率就不会太高。为了解决该问题,就出现了网桥&交换机。
类似 HUB & reperter 的关系,switch 就是多口版的 bridge。
bridge 是一个稍微智能的设备,会根据mac地址自己学习并划分网段(转发表)。即假设AB主机都通过端口1发送过消息给bridge,则A to B的帧不会被转发到其他端口。这样在一定程度上避免了冲突域的问题。
但是 bridge & switch 对广播帧是没有限制能力的(因为广播帧默认是发给所有设备的,所谓广播风暴,也是这个原因)。这时候就出现了router。router是工作在三层的设备,将广播的包限制在了其广播域之内。实际上,除非做特殊配置,否则路由器从不转发广播类型的数据包。
通过路由进行链接的设备,组成了一个网络。而世界上有很多的网络,不同网络之间的链接是通过一个特殊的路由设备—网关来进行的。
上述内容参考的资料:
其他
- 什么是ICMP
提到ICMP是做测试的时候想验证 libvirt 的 migrate 网络状态。migrate 使用的是 TCP,网络层之上的传输层的协议;而 ping 使用的是 ICMP,使用的是网络层的协议。几个关于 ICMP 的点如下:
- 跟端口没关系。不像TCP一样使用端口号。
- 是IP层的协议
- ICMP本质是错误侦测与回报机制,常用于
- 路由表维护
- 侦测主机是否存在
关于ICMP报文的介绍,可以参考:戳这里。其中也包含了对IP,ARP,RARP,IGMP的报文格式介绍。
附录
OSI分层
- 应用层 Application
- 表示层 Presentation
- 会话层 Session
- 传输层 Transport
- 网络层 Network
- 数据链路层 Data Link
- 物理层Physical